A workflow is the flow or progression of work that describes the tasks, procedural steps, organizations or people involved in a particular business process. In addition, a workflow may indicate the required input and output information, and tools needed for each step in the business process.
A number of organizations institute workflow automation products that allow the organization to create a workflow model and components such as online forms and then to use this product as a way to manage and enforce the consistent handling of work. For example, a manufacturing company may use a workflow automation application to ensure that a purchase order received for merchandise is handled consistently from the initial receiving of the order to the final shipment of the merchandise to the customer. Thus, the workflow ensures each person and system involved in the process of fulfilling purchase orders successfully completes their step before allowing the process to proceed to the next procedural step in the process.
In various industries, operations have numerous business processes that have high-throughput and short running requirements. These may be known as real-time systems. Such processes involve real-time computing with hardware and software systems that are subject to real-time constraints. In many cases, overall orchestration or choreography of the workflow must happen very fast, sometimes in the order of a few hundred milliseconds.
Various real-time systems are known to be “hard,” that is completion of an operation after its deadline is considered useless. Ultimately, this may lead to a critical failure of the complete system. Other real-time systems are known to be “soft” and will tolerate lateness of an operation, though the lateness may lead to decreased service quality.
For example, a real-time system may be designed to produce a label for a package running on a conveyor belt. The package has a bar code and runs on the conveyor belt and is scanned by an operator using a handheld device. The information is processed by the real-time computer system and the system goes through and connects to multiple external systems to obtain the information needed to produce a package label.
Different external systems make decisions based on the scanned information. For instance, a system will determine whether the address indicated in the scanned information is correct or not and another system will look at the dimensions indicated in the scanned information and will evaluate whether they are different than the actual dimensions of the package to determine whether the package needs to be re-billed. All of this information processing must be performed within 200 to 300 milliseconds. This is because the package label must be produced and printed out at the end of the conveyor belt so that the operator can retrieve the label from a printer, apply the label to the package, and place the package in the correct bin at the end of the conveyor belt.
Many commercial workflow products (e.g., workflow engines on the market) are not designed for such business processes. This is because many of these products involve a great deal of overhead such as a database engine, a message server, and/or a WebLogic® server. As a result, these workflow engines cannot scale down to very short time frames. Thus, a need exists for a workflow product that allows a designer to design high performance, short duration workflows and that can execute such workflows.